home *** CD-ROM | disk | FTP | other *** search
/ Monster Media 1996 #14 / Monster Media No. 14 (April 1996) (Monster Media, Inc.).ISO / pcboard / hb_tb12.zip / STB.PPE (.txt) < prev    next >
PCBoard Programming Language Executable  |  1996-01-02  |  14KB  |  700 lines

  1. ;------------------------------------------------------------------------------
  2. ;                                                   .ss.
  3. ;                                                   `²²'
  4. ;             .,sS$Ss,,s$  .,sS$$$Ss.  .,sS$Ss,,s$ .ss.  .sSs.
  5. ;           .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
  6. ;           $$$'   .$$$' $$$²Sçsµ²' .$$$'   .$$$'.$$$' .$$$'  `$$b.
  7. ;           $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$'    ;$$$
  8. ;           `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
  9. ;                                    .sS²°$$$²²°"'       d²°'
  10. ;                                  .$$²  .$$'
  11. ;                                  $$$.,d$$'
  12. ;                                  `²S$$S²'
  13. ;------------------------------------------------------------------------------
  14. ; P.P.L.X. 2.OO                          (C)1996 - Lone Runner / AEGiS CoRP'96 
  15. ;------------------------------------------------------------------------------
  16. ; PPE 3.2O (Encryption type I) - Analysis ON - Postprocessing ON
  17. ;------------------------------------------------------------------------------
  18.  
  19.     Boolean  BOOLEAN002
  20.     Boolean  BOOLEAN003
  21.     Boolean  BOOLEAN004
  22.     Boolean  BOOLEAN005
  23.     Boolean  BOOLEAN006
  24.     Boolean  BOOLEAN007
  25.     Date     DATE001
  26.     Date     DATE002
  27.     Integer  INTEGER001
  28.     Integer  INTEGER002
  29.     Integer  INTEGER003
  30.     Integer  INTEGER004
  31.     Integer  INTEGER005
  32.     Integer  INTEGER006
  33.     Integer  INTEGER007
  34.     Integer  INTEGER008
  35.     Integer  INTEGER009
  36.     Integer  INTEGER010
  37.     Integer  INTEGER011
  38.     Integer  INTEGER012
  39.     Integer  INTEGER013
  40.     Integer  INTEGER014
  41.     Integer  INTEGER015
  42.     Integer  INTEGER016
  43.     Integer  INTEGER017
  44.     Integer  INTEGER018
  45.     Integer  INTEGER019
  46.     Integer  INTEGER020
  47.     Integer  INTEGER021
  48.     Integer  INTEGER022
  49.     Integer  INTEGER023
  50.     Integer  INTEGER024
  51.     Integer  INTEGER025
  52.     Real     REAL001
  53.     String   STRING001
  54.     String   STRING002
  55.     String   STRING003
  56.     String   STRING004
  57.     String   STRING005
  58.     String   STRING006
  59.     String   STRING007
  60.     String   STRING008
  61.     String   STRING009
  62.     String   STRING010
  63.     String   TSTRING011(9)
  64.     String   TSTRING012(50)
  65.     String   STRING013
  66.     String   STRING014
  67.     String   STRING015
  68.     String   STRING016
  69.     String   STRING017
  70.     String   STRING018
  71.     String   STRING019
  72.     String   STRING020
  73.     String   STRING021
  74.     String   STRING022
  75.  
  76. ;------------------------------------------------------------------------------
  77.  
  78.     Goto LABEL004
  79.     End
  80.     INTEGER001 = Abs(0 - 0)
  81.  
  82.     EndFunc
  83.  
  84.     INTEGER002 = Not(And(0, Not(0)))
  85.  
  86.     EndFunc
  87.  
  88.     REAL001 = 0 ^ 0
  89.  
  90.     EndFunc
  91.  
  92.     INTEGER004 = Year(0)
  93.     INTEGER003 = 0 - MkDate(INTEGER004, 1, 1) + 1
  94.  
  95.     EndFunc
  96.  
  97.     BOOLEAN002 = 0
  98.     STRING002 = ""
  99.     :LABEL001
  100.     If (BOOLEAN002) Goto LABEL003
  101.     FGet 0, STRING002
  102.     If (Ferr(0)) Then
  103.         BOOLEAN002 = 1
  104.     Else
  105.         If ((Trim(STRING002, " ") == "") || (Left(STRING002, 1) == ";")) Goto LABEL002
  106.         Goto LABEL003
  107.         :LABEL002
  108.         Goto LABEL001
  109.     Endif
  110.     :LABEL003
  111.     If (BOOLEAN002 == 1) STRING002 = ""
  112.     STRING001 = STRING002
  113.  
  114.     EndFunc
  115.  
  116.     INTEGER006 = 400
  117.     STRING004 = ""
  118.     STRING005 = ReadLine(PCBDat(), 29)
  119.     INTEGER005 = FNext()
  120.     FOpen INTEGER005, STRING005, 2, 0
  121.     FSeek INTEGER005, INTEGER006 * 0, 0
  122.     FRead INTEGER005, STRING004, 25
  123.     FClose INTEGER005
  124.     STRING003 = Trim(STRING004, " ")
  125.  
  126.     EndFunc
  127.  
  128.     :LABEL004
  129.     Log "Opened TIME BANK at " + String(Time()), 0
  130.     STRING022 = "1.2"
  131.     STRING021 = "aAbBtTqQsSwWxXyYhH"
  132.     BOOLEAN003 = 0
  133.     BOOLEAN007 = EvtTimeAdj()
  134.     BOOLEAN004 = 0
  135.     UseLMRs 0
  136.     GetUser
  137.     BOOLEAN005 = U_Expert
  138.     STRING006 = PPEPath() + "PROMPTS"
  139.     If (Exist(STRING006 + LangExt())) STRING006 = STRING006 + LangExt()
  140.     STRING009 = PPEPath() + PPEName() + ".DBF"
  141.     STRING010 = PPEPath() + "NAME.NDX"
  142.     STRING007 = PPEPath() + PPEName() + ".CFG"
  143.     STRING008 = PPEPath() + "STBTWIT.LST"
  144.     STRING013 = PPEPath() + "MENU"
  145.     STRING014 = PPEPath() + "HELP"
  146.     TSTRING011(0) = "NAME,C,40,0"
  147.     TSTRING011(1) = "TimeTotal,N,6,0"
  148.     TSTRING011(2) = "TimeInDay,N,4,0"
  149.     TSTRING011(3) = "TimeOutDay,N,4,0"
  150.     TSTRING011(4) = "TimeLastIn,C,8,0"
  151.     TSTRING011(5) = "ByteTotal,N,11,0"
  152.     TSTRING011(6) = "ByteInDay,N,11,0"
  153.     TSTRING011(7) = "ByteOutDay,N,11,0"
  154.     TSTRING011(8) = "ByteLastIn,C,8,0"
  155.     TSTRING011(9) = "DateLastIn,C,8,0"
  156.     STRING015 = U_Name()
  157.     If (Exist(STRING006)) Then
  158.         For INTEGER018 = 0 To 46
  159.             TSTRING012(INTEGER018) = ReadLine(STRING006, INTEGER018 + 1)
  160.         Next
  161.     Else
  162.         Log "Prompt File Missing, continuing with defaults...", 0
  163.         TSTRING012(0) = "@X0CSorry @FIRST@, You don't have access to the Time Bank....@X07"
  164.         TSTRING012(1) = "@X0CUnable to add record to database. Leave comment to the sysop...@X07"
  165.         TSTRING012(2) = "@X0E[@X0FA@X0E]@X07@X0B..Deposit Time@X07"
  166.         TSTRING012(3) = "@X0E[@X0FW@X0E]@X07@X0B..Withdraw Time@X07"
  167.         TSTRING012(4) = "@X0E[@X0FB@X0E]@X07@X0B..Deposit Bytes@X07"
  168.         TSTRING012(5) = "@X0E[@X0FY@X0E]@X07@X0B..Withdraw Bytes@X07"
  169.         TSTRING012(6) = "@X0E[@X0FS@X0E]@X07@X0B..Show Your Info@X07"
  170.         TSTRING012(7) = "@X0E[@X0FX@X0E]@X07@X0B..Toggle Expert Mode@X07"
  171.         TSTRING012(8) = "@X0E[@X0FQ@X0E]@X07@X0B..Quit@X07"
  172.         TSTRING012(9) = "@X0BTIME BANK @X0E[@X0FA@X0E,@X0FW@X0E,@X0FB@X0E,@X0FY@X0E,@X0FS@X0E,@X0FH@X0E,@X0FX@X0E,@X0CQ@X0E]@X07"
  173.         TSTRING012(10) = "@X0AEnter your Choice@X07_"
  174.         TSTRING012(11) = "_"
  175.         TSTRING012(12) = "@X0AThank you for using The Time Bank. Enjoy the BBS!@X07"
  176.         TSTRING012(13) = "@CLS@@X1E┌───────────────────────────────────────────────────────────────────────────┐@X07"
  177.         TSTRING012(14) = "@X1E│                      Time Bank User Report for                            │@X07"
  178.         TSTRING012(15) = "@X1E│              @X1C @USER:40C@ @X1E                   │@X07"
  179.         TSTRING012(16) = "@X1E│                                                                           │@X07"
  180.         TSTRING012(17) = "@X1E│        Current Date And Time:@X1A @OPTEXT:22@ @X1E                     │@X07"
  181.         TSTRING012(18) = "@X1E│                                                                           │@X07"
  182.         TSTRING012(19) = "@X1E╞═══════════════════════════════╡@X1BTIME@X1E╞══════════════════════════════════════╡@X07"
  183.         TSTRING012(20) = "@X1E│          Date of Last Time Action:@X1F @OPTEXT:20C@                  @X1E │@X07"
  184.         TSTRING012(21) = "@X1E│    Time in Bank/Max. Time Allowed:@X1A @OPTEXT:20R@                  @X1E │@X07"
  185.         TSTRING012(22) = "@X1E│  Time deposited today/Daily Limit:@X1A @OPTEXT:20R@                  @X1E │@X07"
  186.         TSTRING012(23) = "@X1E│  Time withdrawn today/Daily Limit:@X1A @OPTEXT:20R@                  @X1E │@X07"
  187.         TSTRING012(24) = "@X1E│                                                                           │@X07"
  188.         TSTRING012(25) = "@X1E╞══════════════════════════════╡@X1BBYTES@X1E╞══════════════════════════════════════╡@X07"
  189.         TSTRING012(26) = "@X1E│          Date of Last Byte Action:@X1F @OPTEXT:20C@                  @X1E │@X07"
  190.         TSTRING012(27) = "@X1E│ KBytes in Bank/Max. KByte Allowed:@X1A @OPTEXT:20R@                  @X1E │@X07"
  191.         TSTRING012(28) = "@X1E│KBytes deposited today/Daily Limit:@X1A @OPTEXT:20R@                  @X1E │@X07"
  192.         TSTRING012(29) = "@X1E│KBytes withdrawn today/Daily Limit:@X1A @OPTEXT:20R@                  @X1E │@X07"
  193.         TSTRING012(30) = "@X1E│                                                                           │@X07"
  194.         TSTRING012(31) = "@X1E├───────────────────────────────────────────────────────────────────────────┤@X07"
  195.         TSTRING012(32) = "@X1E│                   @X19Copyright 1995 - Herbert Bushong                       @X1E │@X07"
  196.         TSTRING012(33) = "@X1E└───────────────────────────────────────────────────────────────────────────┘@X07"
  197.         TSTRING012(34) = "@X0CUnavailable due to upcoming event@X07"
  198.         TSTRING012(35) = "@X0EYou currently have @OPTEXT@ minutes saved@X07"
  199.         TSTRING012(36) = "@X0EYou currently have @OPTEXT@ bytes saved@X07"
  200.         TSTRING012(37) = "@X0AAmount of Time to @OPTEXT@@X07"
  201.         TSTRING012(38) = "@X0AAmount of Bytes to @OPTEXT@@X07"
  202.         TSTRING012(39) = "deposit"
  203.         TSTRING012(40) = "withdraw"
  204.         TSTRING012(41) = "@X0FYou can only"
  205.         TSTRING012(42) = "@OPTEXT@"
  206.         TSTRING012(43) = "minutes@X07"
  207.         TSTRING012(44) = "bytes@X07"
  208.         TSTRING012(45) = "@X0CUnable to adjust time! Old values restored@X07"
  209.         TSTRING012(46) = "@X0CUnavailable. You already have @X0FUnlimited @X0Cbytes!@X07"
  210.     Endif
  211.     If (Exist(STRING009)) Goto LABEL005
  212.     Log "Creating Time Bank Database", 0
  213.     INTEGER008 = DNext()
  214.     DCreate INTEGER008, STRING009, 0, TSTRING011(BOOLEAN000)
  215.     If (DChkStat(INTEGER008) == 60) Then
  216.         Log "Unable to Create Database! Aborting", 0
  217.         End
  218.     Endif
  219.     DNew INTEGER008
  220.     DPut INTEGER008, "NAME", "STB PPE"
  221.     DPut INTEGER008, "TimeTotal", 0
  222.     DPut INTEGER008, "TimeInDay", 0
  223.     DPut INTEGER008, "TimeOutDay", 0
  224.     DPut INTEGER008, "TimeLastIn", "01/01/99"
  225.     DPut INTEGER008, "ByteTotal", 0
  226.     DPut INTEGER008, "ByteInDay", 0
  227.     DPut INTEGER008, "ByteOutDay", 0
  228.     DPut INTEGER008, "ByteLastIn", "01/01/99"
  229.     DPut INTEGER008, "DateLastIn", "01/01/99"
  230.     DAdd INTEGER008
  231.     DnCreate INTEGER008, STRING010, "NAME"
  232.     If (DChkStat(INTEGER008) <> 0) Log "Unable to create index! Continuing...", 0
  233.     DnCloseAll INTEGER008
  234.     DCloseAll
  235.     :LABEL005
  236.     If (Exist(STRING007)) Goto LABEL006
  237.     INTEGER020 = 240
  238.     INTEGER021 = 60
  239.     INTEGER022 = 60
  240.     INTEGER023 = 10000000
  241.     INTEGER024 = 1000000
  242.     INTEGER025 = 10000000
  243.     Goto LABEL007
  244.     :LABEL006
  245.     INTEGER020 = ReadLine(STRING007, 1)
  246.     INTEGER021 = ReadLine(STRING007, 2)
  247.     INTEGER022 = ReadLine(STRING007, 3)
  248.     INTEGER023 = ReadLine(STRING007, 4)
  249.     INTEGER024 = ReadLine(STRING007, 5)
  250.     INTEGER025 = ReadLine(STRING007, 6)
  251.     :LABEL007
  252.     If (Exist(STRING008)) Then
  253.         INTEGER007 = FNext()
  254.         FOpen INTEGER007, STRING008, 0, 0
  255.         :LABEL008
  256.         If (Ferr(INTEGER007)) Goto LABEL009
  257.         FGet INTEGER007, STRING019
  258.         If (Upper(STRING019) == STRING015) Then
  259.             BOOLEAN003 = 1
  260.             Goto LABEL009
  261.         Endif
  262.         Goto LABEL008
  263.         :LABEL009
  264.         FClose INTEGER007
  265.         If (BOOLEAN003) Then
  266.             PrintLn TSTRING012(0)
  267.             Log STRING015 + " Found in STBTWIT.LST, aborting", 0
  268.             More
  269.             End
  270.         Endif
  271.     Endif
  272.     INTEGER008 = DNext()
  273.     DOpen INTEGER008, STRING009, 0
  274.     DnOpen INTEGER008, STRING010
  275.     DSeek INTEGER008, STRING015
  276.     Select Case (DChkStat(INTEGER008))
  277.         Case 0
  278.             INTEGER015 = DRecNo(INTEGER008)
  279.             DLockR INTEGER008, INTEGER015
  280.             DGet INTEGER008, "TimeTotal", INTEGER009
  281.             DGet INTEGER008, "TimeInDay", INTEGER010
  282.             DGet INTEGER008, "TimeOutDay", INTEGER011
  283.             DGet INTEGER008, "TimeLastIn", STRING016
  284.             DATE001 = ToDate(STRING016)
  285.             DGet INTEGER008, "ByteTotal", INTEGER012
  286.             DGet INTEGER008, "ByteInDay", INTEGER013
  287.             DGet INTEGER008, "ByteOutDay", INTEGER014
  288.             DGet INTEGER008, "ByteLastIn", STRING017
  289.             DATE002 = ToDate(STRING017)
  290.             DGet INTEGER008, "DateLastIn", STRING018
  291.             If (ToDate(STRING018) < Date()) Then
  292.                 INTEGER013 = 0
  293.                 INTEGER014 = 0
  294.                 INTEGER010 = 0
  295.                 INTEGER011 = 0
  296.                 STRING018 = String(Date())
  297.                 DPut INTEGER008, "ByteInDay", INTEGER013
  298.                 DPut INTEGER008, "ByteOutDay", INTEGER014
  299.                 DPut INTEGER008, "TimeInDay", INTEGER010
  300.                 DPut INTEGER008, "TimeOutDay", INTEGER011
  301.                 DPut INTEGER008, "DateLastIn", STRING018
  302.             Endif
  303.             BOOLEAN004 = 1
  304.             INTEGER009 = 0
  305.             INTEGER010 = 0
  306.             INTEGER011 = 0
  307.             STRING016 = String(Date())
  308.             DATE001 = Date()
  309.             INTEGER012 = 0
  310.             INTEGER013 = 0
  311.             INTEGER014 = 0
  312.             STRING017 = String(Date())
  313.             DATE002 = Date()
  314.             STRING018 = String(Date())
  315.             DNew INTEGER008
  316.             DPut INTEGER008, "NAME", STRING015
  317.             DPut INTEGER008, "TimeTotal", INTEGER009
  318.             DPut INTEGER008, "TimeInDay", INTEGER010
  319.             DPut INTEGER008, "TimeOutDay", INTEGER011
  320.             DPut INTEGER008, "TimeLastIn", STRING016
  321.             DPut INTEGER008, "ByteTotal", INTEGER012
  322.             DPut INTEGER008, "ByteInDay", INTEGER013
  323.             DPut INTEGER008, "ByteOutDay", INTEGER014
  324.             DPut INTEGER008, "ByteLastIn", STRING017
  325.             DPut INTEGER008, "DateLastIn", STRING018
  326.             DAdd INTEGER008
  327.             DSeek INTEGER008, STRING015
  328.         Case 0
  329.             INTEGER015 = DRecNo(INTEGER008)
  330.             DLockR INTEGER008, INTEGER015
  331.         Case Else
  332.             PrintLn TSTRING012(1)
  333.             Log "Unable to add record, aborting...", 0
  334.             More
  335.             End
  336.     End Select
  337.     If (BOOLEAN004) Then
  338.         DispFile PPEPath() + "STBWELC", 2 + 1 + 4
  339.         Newline
  340.         Wait
  341.     Endif
  342.     :LABEL010
  343.     If (BOOLEAN005) Then
  344.         Print TSTRING012(9)
  345.         STRING019 = TSTRING012(11)
  346.     Else
  347.         STRING019 = TSTRING012(10)
  348.         If (Exist(STRING013)) Goto LABEL011
  349.         Cls
  350.         For INTEGER018 = 2 To 8
  351.             PrintLn TSTRING012(INTEGER018)
  352.         Next
  353.         Newline
  354.         Goto LABEL012
  355.         :LABEL011
  356.         DispFile STRING013, 2 + 1 + 4
  357.         Newline
  358.     Endif
  359.     :LABEL012
  360.     STRING020 = ""
  361.     InputStr STRING019, STRING020, 15, 1, STRING021, 4 + 2 + 8 + 256
  362.     Select Case (STRING020)
  363.         Case "Q"
  364.             DUnlock INTEGER008
  365.             DnCloseAll INTEGER008
  366.             DCloseAll
  367.             PutUser
  368.             PrintLn TSTRING012(12)
  369.             Delay 26
  370.             Log "Exited TIME BANK at " + String(Time()), 0
  371.             End
  372.         Case "H"
  373.             DispFile STRING014, 2 + 1 + 4
  374.             Wait
  375.         Case "X"
  376.             U_Expert = !U_Expert
  377.             BOOLEAN005 = U_Expert
  378.         Case "A"
  379.             OpText String(INTEGER009)
  380.             PrintLn TSTRING012(35)
  381.             OpText TSTRING012(39)
  382.             INTEGER019 = 0
  383.             InputInt TSTRING012(37), INTEGER019, 15
  384.             Newline
  385.             INTEGER019 = Abs(INTEGER019)
  386.             BOOLEAN006 = 0
  387.             If (INTEGER019 + INTEGER010 > INTEGER021) Then
  388.                 BOOLEAN006 = 1
  389.             Endif
  390.             If (INTEGER020 < INTEGER019 + INTEGER009) Then
  391.                 BOOLEAN006 = 1
  392.             Endif
  393.             If (MinLeft() - INTEGER019 < 3) Then
  394.                 BOOLEAN006 = 1
  395.             Endif
  396.             If (BOOLEAN006) Then
  397.                 Print TSTRING012(41) + " "
  398.                 OpText TSTRING012(39)
  399.                 If (MinLeft() < INTEGER021 - INTEGER010) Then
  400.                     PrintLn TSTRING012(42) + " " + String(MinLeft() - 3) + " " + TSTRING012(43)
  401.                     Goto LABEL013
  402.                 Endif
  403.                 PrintLn TSTRING012(42) + " " + String(INTEGER021 - INTEGER010) + " " + TSTRING012(43)
  404.                 :LABEL013
  405.                 Wait
  406.                 Goto LABEL010
  407.             Endif
  408.             AdjTime -INTEGER019
  409.             INTEGER009 = INTEGER009 + INTEGER019
  410.             INTEGER010 = INTEGER010 + INTEGER019
  411.             DATE001 = Date()
  412.             STRING016 = String(DATE001)
  413.             DPut INTEGER008, "TimeTotal", INTEGER009
  414.             DPut INTEGER008, "TimeInDay", INTEGER010
  415.             DPut INTEGER008, "TimeLastIn", STRING016
  416.         Case "W"
  417.             If (BOOLEAN007) Then
  418.                 PrintLn TSTRING012(34)
  419.                 More
  420.                 Goto LABEL010
  421.             Endif
  422.             OpText String(INTEGER009)
  423.             PrintLn TSTRING012(35)
  424.             OpText TSTRING012(40)
  425.             INTEGER019 = 0
  426.             InputInt TSTRING012(37), INTEGER019, 15
  427.             Newline
  428.             INTEGER019 = Abs(INTEGER019)
  429.             BOOLEAN006 = 0
  430.             If (INTEGER019 + INTEGER011 > INTEGER022) BOOLEAN006 = 1
  431.             If (INTEGER009 < INTEGER019) BOOLEAN006 = 1
  432.             If (BOOLEAN006) Then
  433.                 Print TSTRING012(41) + " "
  434.                 OpText TSTRING012(40)
  435.                 PrintLn TSTRING012(42) + " " + String(INTEGER009) + " " + TSTRING012(43)
  436.                 Wait
  437.                 Goto LABEL010
  438.             Endif
  439.             INTEGER016 = MinLeft()
  440.             AdjTime INTEGER019
  441.             If (INTEGER016 == MinLeft()) Then
  442.                 PrintLn TSTRING012(45)
  443.                 Wait
  444.                 Goto LABEL010
  445.             Endif
  446.             INTEGER009 = INTEGER009 - INTEGER019
  447.             INTEGER011 = INTEGER011 + INTEGER019
  448.             DATE001 = Date()
  449.             STRING016 = String(DATE001)
  450.             DPut INTEGER008, "TimeTotal", INTEGER009
  451.             DPut INTEGER008, "TimeOutDay", INTEGER011
  452.             DPut INTEGER008, "TimeLastIn", STRING016
  453.         Case "B"
  454.             If (Upper(PCBMac("@BYTELIMIT@")) == "UNLIMITED") Then
  455.                 Newline
  456.                 PrintLn TSTRING012(46)
  457.                 Wait
  458.                 Goto LABEL010
  459.             Endif
  460.             OpText String(INTEGER012)
  461.             PrintLn TSTRING012(36)
  462.             OpText TSTRING012(39)
  463.             INTEGER019 = 0
  464.             InputInt TSTRING012(38), INTEGER019, 15
  465.             Newline
  466.             INTEGER019 = Abs(INTEGER019)
  467.             INTEGER017 = PCBMac("@BYTESLEFT@")
  468.             BOOLEAN006 = 0
  469.             If (INTEGER019 + INTEGER013 > INTEGER024) BOOLEAN006 = 1
  470.             If (INTEGER023 < INTEGER012 + INTEGER019) BOOLEAN006 = 1
  471.             If (INTEGER017 < INTEGER019) BOOLEAN006 = 1
  472.             If (BOOLEAN006) Then
  473.                 Print TSTRING012(41) + " "
  474.                 OpText TSTRING012(39)
  475.                 PrintLn TSTRING012(42) + " " + PCBMac("@BYTESLEFT@") + " " + TSTRING012(44)
  476.                 Wait
  477.                 Goto LABEL010
  478.             Endif
  479.             AdjBytes -INTEGER019
  480.             INTEGER012 = INTEGER012 - INTEGER019
  481.             INTEGER014 = INTEGER014 + INTEGER019
  482.             DATE002 = Date()
  483.             STRING017 = String(DATE002)
  484.             DPut INTEGER008, "ByteTotal", INTEGER012
  485.             DPut INTEGER008, "ByteOutDay", INTEGER014
  486.             DPut INTEGER008, "ByteLastIn", STRING017
  487.         Case "Y"
  488.             If (Upper(PCBMac("@BYTELIMIT@")) == "UNLIMITED") Then
  489.                 Newline
  490.                 PrintLn TSTRING012(46)
  491.                 Wait
  492.                 Goto LABEL010
  493.             Endif
  494.             OpText String(INTEGER012)
  495.             PrintLn TSTRING012(36)
  496.             OpText TSTRING012(40)
  497.             INTEGER019 = 0
  498.             InputInt TSTRING012(38), INTEGER019, 15
  499.             Newline
  500.             INTEGER019 = Abs(INTEGER019)
  501.             BOOLEAN006 = 0
  502.             If (INTEGER019 + INTEGER014 > INTEGER025) BOOLEAN006 = 1
  503.             If (INTEGER012 < INTEGER019) Then
  504.                 BOOLEAN006 = 1
  505.                 Print TSTRING012(41) + " "
  506.                 OpText TSTRING012(40)
  507.                 PrintLn TSTRING012(42) + " " + String(INTEGER012) + " " + TSTRING012(44)
  508.                 Wait
  509.                 Goto LABEL010
  510.             Endif
  511.             AdjBytes -INTEGER019
  512.             INTEGER012 = INTEGER012 - INTEGER019
  513.             INTEGER014 = INTEGER014 + INTEGER019
  514.             DATE002 = Date()
  515.             STRING017 = String(DATE002)
  516.             DPut INTEGER008, "ByteTotal", INTEGER012
  517.             DPut INTEGER008, "ByteOutDay", INTEGER014
  518.             DPut INTEGER008, "ByteLastIn", STRING017
  519.         Case "S"
  520.             For INTEGER018 = 13 To 33
  521.                 If (((((INTEGER018 >= 12) && (INTEGER018 <= 16)) || ((INTEGER018 >= 18) && (INTEGER018 <= 19))) || ((INTEGER018 >= 24) && (INTEGER018 <= 25))) || ((INTEGER018 >= 30) && (INTEGER018 <= 33))) Then
  522.                     OpText ""
  523.                     Goto LABEL014
  524.                 Endif
  525.                 If (INTEGER018 == 17) Then
  526.                     OpText String(Date()) + " " + Left(String(Time()), 5)
  527.                     Goto LABEL014
  528.                 Endif
  529.                 If (INTEGER018 == 20) Then
  530.                     OpText STRING016
  531.                     Goto LABEL014
  532.                 Endif
  533.                 If (INTEGER018 == 21) Then
  534.                     OpText Right(String(INTEGER009), 6) + " / " + Right(String(INTEGER020), 6) + " min."
  535.                     Goto LABEL014
  536.                 Endif
  537.                 If (INTEGER018 == 22) Then
  538.                     OpText Right(String(INTEGER010), 6) + " / " + Right(String(INTEGER021), 6) + " min."
  539.                     Goto LABEL014
  540.                 Endif
  541.                 If (INTEGER018 == 23) Then
  542.                     OpText Right(String(INTEGER011), 6) + " / " + Right(String(INTEGER022), 6) + " min."
  543.                     Goto LABEL014
  544.                 Endif
  545.                 If (INTEGER018 == 26) Then
  546.                     OpText STRING017
  547.                     Goto LABEL014
  548.                 Endif
  549.                 If (INTEGER018 == 27) Then
  550.                     OpText Right(String(INTEGER012 / 1000), 7) + "/" + Right(String(INTEGER023 / 1000), 7) + " KB."
  551.                     Goto LABEL014
  552.                 Endif
  553.                 If (INTEGER018 == 28) Then
  554.                     OpText Right(String(INTEGER013 / 1000), 7) + "/" + Right(String(INTEGER024 / 1000), 7) + " KB."
  555.                     Goto LABEL014
  556.                 Endif
  557.                 If (INTEGER018 == 29) Then
  558.                     OpText Right(String(INTEGER014 / 1000), 7) + "/" + Right(String(INTEGER025 / 1000), 7) + " KB."
  559.                 Endif
  560.                 :LABEL014
  561.                 PrintLn TSTRING012(INTEGER018)
  562.             Next
  563.             Wait
  564.     End Select
  565.     Goto LABEL010
  566.     End
  567.  
  568. ;------------------------------------------------------------------------------
  569. ;
  570. ; Usage report (before postprocessing)
  571. ;
  572. ; ■ Statements used :
  573. ;
  574. ;    6       End
  575. ;    1       Cls
  576. ;    3       More
  577. ;    10      Wait
  578. ;    91      Goto 
  579. ;    176     Let 
  580. ;    5       Print 
  581. ;    18      PrintLn 
  582. ;    59      If 
  583. ;    3       DispFile 
  584. ;    2       FOpen 
  585. ;    2       FClose 
  586. ;    2       FGet 
  587. ;    1       GetUser
  588. ;    1       PutUser
  589. ;    2       AdjTime 
  590. ;    8       Log 
  591. ;    1       InputStr 
  592. ;    4       InputInt 
  593. ;    1       Delay 
  594. ;    9       Newline
  595. ;    22      OpText 
  596. ;    1       FSeek 
  597. ;    1       FRead 
  598. ;    2       AdjBytes 
  599. ;    6       EndFunc
  600. ;    1       DCreate 
  601. ;    1       DOpen 
  602. ;    2       DCloseAll
  603. ;    2       DLockR 
  604. ;    1       DUnlock 
  605. ;    1       DnCreate 
  606. ;    1       DnOpen 
  607. ;    2       DnCloseAll 
  608. ;    2       DNew 
  609. ;    2       DAdd 
  610. ;    2       DSeek 
  611. ;    9       DGet 
  612. ;    37      DPut 
  613. ;    1       UseLMRs 
  614. ;
  615. ;
  616. ; ■ Functions used :
  617. ;
  618. ;    3       -
  619. ;    1       ^
  620. ;    1       *
  621. ;    6       /
  622. ;    84      +
  623. ;    9       -
  624. ;    27      ==
  625. ;    1       <>
  626. ;    11      <
  627. ;    7       <=
  628. ;    4       >
  629. ;    10      >=
  630. ;    50      !
  631. ;    10      &&
  632. ;    7       ||
  633. ;    3       Upper()
  634. ;    2       Left()
  635. ;    12      Right()
  636. ;    2       Ferr()
  637. ;    2       Trim()
  638. ;    12      Date()
  639. ;    3       Time()
  640. ;    1       U_Name()
  641. ;    1       Year()
  642. ;    32      String()
  643. ;    1       PCBDat()
  644. ;    8       PPEPath()
  645. ;    8       ReadLine()
  646. ;    5       MinLeft()
  647. ;    6       Exist()
  648. ;    2       LangExt()
  649. ;    1       And()
  650. ;    2       Not()
  651. ;    5       Abs()
  652. ;    2       PPEName()
  653. ;    1       MkDate()
  654. ;    3       ToDate()
  655. ;    1       EvtTimeAdj()
  656. ;    4       PCBMac()
  657. ;    2       DRecNo()
  658. ;    2       FNext()
  659. ;    2       DNext()
  660. ;    4       DChkStat()
  661. ;
  662. ;------------------------------------------------------------------------------
  663. ;
  664. ; Analysis flags : WAad
  665. ;
  666. ; W - Write user ■ 5
  667. ;     Program writes a user record. Although this may be normal for a
  668. ;     User Editor, it may also be a way to modify an account level.
  669. ;     ■ Search for : PUTUSER
  670. ;
  671. ; A - Adjust online time remaining ■ 5
  672. ;     Program modify the amount of online time remaining, this may
  673. ;     be a way to bypass time limits
  674. ;     ■ Search for : ADJTIME
  675. ;
  676. ; a - Adjust ratio ■ 4
  677. ;     User's ratio is adjusted by changing the amount of files/bytes
  678. ;     uploaded. This may be normal for a user editor.
  679. ;     ■ Search for : ADJBYTES, ADJDBYTES, ADJTBYTES, ADJTFILES
  680. ;
  681. ; d - Access PCBOARD.DAT ■ 2
  682. ;     Program gets the full pathname to PCBOARD.DAT, this may be usefull
  683. ;     for many PPE so they can find various informations on the system
  684. ;     (system paths, max number of lines in messages, ...) but it may also
  685. ;     be a way to gather vital informations.
  686. ;     ■ Search for : PCBDAT()
  687. ;
  688. ;------------------------------------------------------------------------------
  689. ;
  690. ; Postprocessing report
  691. ;
  692. ;    3       For/Next
  693. ;    0       While/EndWhile
  694. ;    31      If/Then or If/Then/Else
  695. ;    2       Select Case
  696. ;
  697. ;------------------------------------------------------------------------------
  698. ;                 AEGiS Corp - Break the routines, code against the machines!
  699. ;------------------------------------------------------------------------------
  700.